package com.device.grant.dao.impl;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.device.grant.dao.BaseDao;
import com.device.grant.dao.ChargeLogDao;
import com.device.grant.pojo.ChargeLog;
import com.device.grant.utils.ColumnCompator;
import com.device.grant.utils.SQLUtils2;

@Repository("chargeLogDao")
public class ChargeLogDaoImpl extends BaseDao<ChargeLog> implements ChargeLogDao {

    private static final String TABLE = "ChargeLog";

    private static final String ID = "id";

    public List<ChargeLog> queryChargeLogs(Integer page, Integer rows, Map<String, Object> params, List<String> blearParams,
            Map<String, ColumnCompator> compators, String orderBy) {
        String sql = SQLUtils2.genearlQuerySQLForCompareAndNotIn(TABLE, ID, page, rows, params, blearParams, compators, orderBy);

        return super.queryInSQL(sql);
    }

    public Integer countChargeLogs(Integer page, Integer rows, Map<String, Object> params, List<String> blearParams,
            Map<String, ColumnCompator> compators) {
        Map<String, Object> map = SQLUtils2.generalCountSQLForCompare(TABLE, ID, params, blearParams, compators);

        return simpleJdbcTemplate.queryForInt(map.get(SQLUtils2.SQL).toString(), (Object[]) map.get(SQLUtils2.PARAMS));
    }

    public boolean insertLog(ChargeLog log) {
        return super.insert(TABLE, ID, log);
    }
}
